# For each..next

for each..next 제어 문은 쉼표로 구분된 목록의 각 값을 대상으로 하나 또는 여러 문을 실행하는 스크립트 반복 구조입니다. 목록의 각 값에 대해 for와 next로 묶인 루프 내의 문이 실행됩니다.

구문:

특수한 구문을 사용하면 현재 디렉터리 내의 파일과 디렉터리 이름으로 목록을 생성할 수 있습니다.

for each var in list

[statements]

[exit for [ ( when | unless ) condition ]

[statements]

next [var]

인수:

For each 인수

| 인수 | 설명 |
| --- | --- |
| var | 각 루프 실행을 위해 목록에서 새 값을 가져오는 스크립트 변수 이름입니다. var가 next 다음에 지정된 경우, 이 이름은 해당하는 for each 다음에 오는 이름과 동일해야 합니다. |

var 변수의 값은 루프 내의 문에서 변경할 수 있지만 이것은 좋은 프로그래밍 방법이 아닙니다.

루프 내에서 exit for 절이 나올 경우 스크립트 실행이 루프의 끝을 나타내는 next 절 다음 첫 번째 문으로 전환됩니다. 선택적으로 when 또는 unless 접미사를 사용하여 exit for 절을 조건부로 만들 수 있습니다.

정보 메모for each..next 문은 제어 문이므로 세미콜론이나 줄 끝(EOL)으로 끝나며 여기에 포함될 수 있는 세 절(for each,exit for 및 next)은 줄 경계를 넘지 않아야 합니다.

구문:

list := item { , item }

item := constant | (expression) | filelist (mask) | dirlist (mask) | fieldvaluelist (fieldname)

List 인수

| 인수 | 설명 |
| --- | --- |
| constant | 임의의 숫자 또는 문자열입니다. 스크립트에 직접 포함되는 문자열은 작은따옴표로 묶어야 합니다. 작은따옴표가 없는 문자열은 변수로 해석되며 변수의 값이 사용됩니다. 숫자는 작은따옴표로 묶을 필요가 없습니다. |
| expression | 임의의 표현식입니다. |
| mask | 표준 와일드카드 문자 \* 및 ?를 비롯한 유효한 파일 이름 문자를 포함할 수 있는 파일 또는 디렉터리 이름 마스크입니다. |
| condition | True 또는 False로 평가되는 논리 표현식입니다. |
| statements | 하나 이상의 QlikView 스크립트 문의 그룹입니다. |
| filelist mask | 이 구문을 사용하면 현재 디렉터리에서 파일 이름 마스크와 일치하는 모든 파일의 쉼표로 구분된 목록이 생성됩니다. |
| dirlist mask | 이 구문을 사용하면 현재 폴더에서 폴더 이름 마스크와 일치하는 모든 폴더의 쉼표로 구분된 목록이 생성됩니다. |
| fieldvaluelist mask | 이 구문은 QlikView로 이미 로드된 필드 값을 통해 반복합니다. |

경고 메모Qlik 웹 저장소 공급자 커넥터 및 기타 DataFiles 연결은 와일드카드(\* 및 ?) 문자를 사용하는 필터 마스크를 지원하지 않습니다.

예 1: 파일 목록 로드

```
// LOAD the files 1.csv, 3.csv, 7.csv and xyz.csv for each a in 1,3,7,'xyz'    LOAD * from file$(a).csv; next
```

예 2: 디스크의 파일 목록 만들기

이 예에서는 폴더에 있는 모든 QlikView 관련 파일 목록을 로드합니다.

```
 sub DoDir (Root)    for each Ext in 'qvw', 'qva', 'qvo', 'qvs', 'qvc', 'qvd'        for each File in filelist (Root&'\*.' &Ext)           LOAD              '$(File)' as Name,              FileSize( '$(File)' ) as Size,              FileTime( '$(File)' ) as FileTime          autogenerate 1;        next File     next Ext    for each Dir in dirlist (Root&'\*' )        call DoDir (Dir)     next Dir  end sub  call DoDir ('C:')
```

예 3: 필드 값 a를 통해 반복

이 예에서는 로드된 FIELD 값의 목록을 통해 반복하고 새 필드인 NEWFIELD를 생성합니다. FIELD의 각 값에 대해서는 두 NEWFIELD 레코드가 생성됩니다.

```
 load * inline [ FIELD one two three ];  FOR Each a in FieldValueList('FIELD') LOAD '$(a)' &'-'&RecNo() as NEWFIELD AutoGenerate 2; NEXT a  
```

결과 테이블은 다음과 같습니다.

Example 3

| NEWFIELD |
| --- |
| one-1 |
| one-2 |
| two-1 |
| two-2 |
| three-1 |
| three-2 |

## 자세한 정보

* [For..next](https://help.qlik.com/ko-KR/qlikview/September2025/Subsystems/Client/Content/QV_QlikView/Scripting/ScriptControlStatements/For.htm)
* [Next](https://help.qlik.com/ko-KR/qlikview/September2025/Subsystems/Client/Content/QV_QlikView/Scripting/ScriptControlStatements/Next.htm)
* [Exit](https://help.qlik.com/ko-KR/qlikview/September2025/Subsystems/Client/Content/QV_QlikView/Scripting/ScriptControlStatements/Exit.htm)